home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
MEDICAL
/
2608A.ZIP
/
GP.ZIP
/
PRINTALL.SRC
< prev
next >
Wrap
Text File
|
1990-11-03
|
26KB
|
1,343 lines
;\|
;NW 02:58:05 PM 27/ 6/90 |
FIELDS:
define(S1|A|1||)
define(FLAG|A|1||)
define(REC_CTR|N|1||)
define(MEM_TDND|S|8||)
define(MEM_RECNUM|N|8||)
define(FILE_ERROR|N|2||)
define(RESTRICT1|A|25||)
define(HYPHEN|A|1||)
define(ARRAY1|A|30||3)
define(ARRAY2|A|5||3)
define(ARRAY3|A|30||3)
define(ARRAY4|A|30||3)
define(ARRAY5|A|8||3)
define(ARRAY6|A|3||3)
define(ARRAY7|S|8||3)
define(ARRAY8|A|30||3)
define(ARRAY9|A|30||3)
define(RESTRICT2|A|35||)
define(S1PRNT|A|1||)
define(S10|A|10||)
define(N2|N|2|0|)
define(MINUS|N|1||)
define(FLAGGER|A|1||)
define(TIT|A|4||)
define(N3|N|3|0|)
define(N5|N|5|0|)
define(B8|A|8||)
define(N5.2|N|5|2|)
define(A5|A|5||)
define(A8|A|8||)
define(A30|A|30||)
define(B30|A|30||)
define(C30|A|30||)
define(D1|A|1||)
define(AGE|N|5|2|)
define(TD|S|8||)
define(DATERP|S|8||)
define(TDND|S|8||)
define(DATEX|S|8||)
define(REC.NUM|N|8|0|)
define(MEM.PAT.NAME|A|27||)
define(DAY|N|1|0|)
define(DOCTORRP|A|30||)
define(P2|N|2|0|)
define(PUNC2A|N|2|0|)
define(PATIENT1A|A|30||)
define(PUNC1|N|2|0|)
define(TM|A|27||16)
define(N.2.0.P|N|2|0|)
define(P.2.0.1|N|2|0|)
define(P.2.0.2|N|2|0|)
define(P.2.0.3|N|2|0|)
define(PATIENT1|A|30||)
define(PATIENT2|A|30||)
define(X1|A|1||)
define(CHOICE|N|2|0|)
define(YES.NO|A|1||)
define(A78|A|80||)
define(PCTR|N|2|0|)
define(AB|A|5||)
define(LETTER|A|6||)
define(NY|A|1||)
define(MEDCTR|N|1|0|)
define(PATCTR|N|4|0|)
define(CNTR|N|2||)
define(Z30|A|30||)
define(P2X|N|1||)
define(RPCTR|N|4||)
define(CODEX1|S|8||)
define(CODEX2|S|8||)
define(CODEX3|S|8||)
date(TD|G)
open(GPSETUP||0|EXIT)
find(B|HEADING|EXIT)
TDM:
open(PATIENT||0|PATLOCK)
open(RP||0|RPLOCK)
open(ABBREV||0|EXIT)
open(RECALLS||0|EXIT)
open(RPABBREV||0|EXIT)
TDMX:
clrlne(1|25)
clrlne(1|24)
trap(I|I)
gosub CLEARALL
gosub FIELDCLR
gosub TRAPS
mount(RP|S)
trap(U|I)
trap(W|I)
YES.NO = ("")
pmsg(@H;"DO YOU WANT A TEST PRESCRIPTION PRINT?"|1|25|N|Y|S|)
enter(YES.NO|"YN"|||Y|Y|N|40|25|N)
clrlne(1|25)
if YES.NO = ("N") goto MESS
pmsg(@H;"ALIGN PAPER THEN PRESS ANY KEY TO PRINT DUMMY SCRIPT"|1|25|Y|N|S|)
clrlne(1|25)
gosub MOUNTRP
trap(I|S|PRINTSTOP)
PATIENT.NAME = ("THIS SHOULD BE AT NAME")
A30 = ("THIS SHOULD BE ON END LINE")
pblnk(1)
pfmt(1|||N|N|)
pvert(40)
pblnk(1)
pfmt(7|||N|N|)
mount(RP|S)
trap(I|I)
pmsg(@H;"PRINT ANOTHER TEST PRESCRIPTION? Y/N"|1|25|N|N|S|)
enter(YES.NO|"YN"|||Y|Y|N|40|25|N)
clrlne(1|25)
if YES.NO = ("N") goto MESS
goto TDMX
MESS:
clrlne(1|25)
gosub TRAPS
gosub CLEARALL
PRINTRPS:
trap(Q|G|RP.EXIT)
trap(C|I)
PRINTRP:
PAT.NAMEX:
mount(RP|S)
clrlne(1|25)
gosub CLEARALL
gosub FIELDCLR
goto PRINTALL
PRINT:
trap(I|S|PRINTSTOP)
clr(GPSETUP|B)
find(B|HEADING|EXIT)
if N2 = (0) gosub SHEADING
DATERP = (RP.NEXT.DUE+RP.DAYS.SUPPLY)
RESTRICT1 = ("")
RESTRICT2 = ("NEXT DUE:")
pblnk(1)
just(RESTRICT2|R)
if CONTROL = ("N") goto ELSE
if RESTRICT.NO > (2) goto ELSE
if ISS.RESTRICT = ("Y") do
{
A30 = (MEDICATION)
just(A30|R)
S10 = (QUANTITY)
just(S10|R)
if RESTRICT.NO = (2) do
{
RESTRICT1 = (":ONLY ONE MORE RPT IS")
RESTRICT2 = ("ALLOWED.PLEASE SEE YOUR DR BEFORE:")
trim(RESTRICT1|T)
trim(RESTRICT2|T)
pfmt(7|||N|N|)
pfmt(8|||N|N|)
pfmt(9|||N|N|)
goto ELSEX
}
if RESTRICT.NO = (1) do
{
RESTRICT1 = (":THIS IS THE LAST ISSUE.")
RESTRICT2 = ("YOU MUST SEE YOUR DR BEFORE:")
trim(RESTRICT1|T)
trim(RESTRICT2|T)
pfmt(7|||N|N|)
pfmt(8|||N|N|)
pfmt(9|||N|N|)
goto ELSEX
}
if RESTRICT.NO <= (0) do
{
MINUS = (MINUS+1)
RESTRICT1 = (" RESTRICTION REACHED!")
RESTRICT2 = ("INFORM DOCTOR IMMEDIATELY")
just(A30|R)
pfmt(28|||N|N|)
pfmt(29|||N|N|)
pblnk(1)
goto ELSEX
}
}
else
{
goto ELSE
}
ELSE:
A30 = (MEDICATION)
S10 = (QUANTITY)
pfmt(7|||N|N|)
pfmt(8|||N|N|)
pfmt(9|||N|N|)
ELSEX:
N2 = (N2+1)
gosub UPDT.LIST
if N2 = (5) gosub ENDPRINT
ret
ENDPRINT:
MEM_RECNUM = (RECORD.NUMBER)
P2X = (N2-MINUS)
MINUS = (0)
LOOPER:
if N2 <> (5) do
{
pfmt(30|||N|N|)
pblnk(3)
N2 = (N2+1)
goto LOOPER
}
pvert(31)
if S1 = ("0") do
{
pfmt(14|||N|N|)
}
else
{
pfmt(15|||N|N|)
}
pblnk(2)
60:
if S1PRNT = ("A") do
{
pfmt(17|||N|N|)
if D1 = ("Y") do
{
DAY = (DOCTOR)
RPDOCTOR = (RPDOCTOR[DAY])
DOCTORRP = (RPDOCTOR)
pfmt(19|||N|N|)
}
else
{
DAY =day(TDND)
RPDOCTOR = (RPDOCTOR[DAY])
DOCTORRP = (RPDOCTOR)
pfmt(19|||N|N|)
}
}
else
{
pfmt(18|||N|N|)
if D1 = ("Y") do
{
DAY = (DOCTOR)
RPDOCTOR = (RPDOCTOR[DAY])
DOCTORRP = (RPDOCTOR)
pfmt(20|||N|N|)
}
else
{
DAY =day(TD)
RPDOCTOR = (RPDOCTOR[DAY])
DOCTORRP = (RPDOCTOR)
pfmt(20|||N|N|)
}
}
pfmt(21|||N|N|)
pfmt(22|||N|N|)
TESTDISP:
if DISPENSING = ("Y") do
{
pfmt(27|||N|N|)
}
EJECT:
pvert(41)
pblnk(1)
RPCTR = (RPCTR+1)
pmsg("Number of RP's printed=";RPCTR|1|24|N|N|S|)
PUNC2A = (0)
B8 = ("A")
N2 = (0)
S1 = ("0")
RETURN:
ret
;PRINT THE AUTO RPS|
PRINTALL:
gosub FIELDCLR
gosub TRAPS
trap(U|I)
trap(Q|G|RP.EXIT)
saves(1)
trap(Q|I)
rev
D1 = ("N")
window(1|16|6|75)
pmsg("YOU MAY PRINT REPEATS UP TO THE DATE YOU ENTER - AUTO.ON.DEMAND =<A> ONLY"|1|1|N|N|S|)
pmsg(@R;"ENTER THE DATE:"|1|2|N|N|S|DATEX)
D1 = ("Y")
pmsg(@R;"OWN DR.<Y> OR DOCTOR OF DAY SIGNING <N>:"|1|3|N|N|S|)
enter(D1|"YN"|||Y|Y|N|41|3|N)
RP.REF = (1)
pmsg(@R;"ENTER RP.REF - USUALLY <1>:"|1|4|N|N|S|RP.REF)
pmsg(@R;"TO CONTINUE <Y> OR <N> TO EXIT:"|1|5|N|N|S|YES.NO)
frg
redsp(1)
trap(Q|G|EXIT)
S1 = ("0")
P2 = (1)
DATE:
if YES.NO <> ("Y") goto TDMX
trap(I|S|PRINTSTOP)
gosub MOUNTRP
PRINTALLX:
P2 = (1)
find(G|RP.REF|NEWPRINTY|)
S1PRNT = ("A")
PUNC2A = (0)
NEXTALL:
RECORD.NUMBER = (RP.REF)
find(M|RECORD.NUMBER|EXIT)
MEM_RECNUM = (RECORD.NUMBER)
TDND = (RP.NEXT.DUE)
MEM_TDND = (TDND)
DATERP = (TD)
if AUTO.ON.DEMAND = ("D") goto NOTAUTO
if RP.NEXT.DUE > (DATEX) goto NOTAUTO
TEST:
N5 = (N5+1)
gosub PRINT
NOTAUTO:
find(N|RP|ENDPRINT?)
if AUTO.ON.DEMAND = ("D") goto NOTAUTO
if RP.NEXT.DUE > (DATEX) goto NOTAUTO
if RP.REF = (RECORD.NUMBER) goto TEST
if N2 = (0) goto XTALL
gosub ENDPRINT
XTALL:
goto NEXTALL
UPDT.LIST:
RP.NEXT.DUE = (RP.NEXT.DUE+RP.DAYS.SUPPLY)
ISSUE.NO = (ISSUE.NO+1)
if CONTROL = ("N") goto CONTROL2
if ISS.RESTRICT <> ("Y") do
{
RESTRICT.NO = (0)
}
else
{
RESTRICT.NO = (HOW.MANY.ISSUES-ISSUE.NO)
}
CONTROL2:
ISSUE.1 = (TDND)
if S1PRNT = ("D") do
{
ISSUE.1 = (TD)
RP.NEXT.DUE = (TD+RP.DAYS.SUPPLY)
}
SAVERPX:
if S1PRNT = ("A") do
{
DATERP = (RP.NEXT.DUE)
}
else
{
if DISPENSING = ("Y") do
{
PRINTR = ("L")
}
else
{
PRINTR = ("")
}
}
save(RP|N|Y|)
ret
SEXIST:
TIT = ("")
if SEX = ("M") then TIT = ("Mr.")
if SEX = ("F") do
{
if MARITAL.STATUS = ("M") do
{
TIT = ("Mrs.")
}
else
{
TIT = ("Ms.")
}
}
if SEX = ("") then TIT = ("Ms.")
trim(TIT|T)
ret
SHEADING:
pblnk(1)
gosub SEXIST
pfmt(1|||N|N|)
LINE2:
P2 = (0)
goto REC_CHECK
REC_LINES:
pblnk(3)
REC_NOSUB:
pfmt(4|||N|N|)
pblnk(1)
pfmt(6|||N|N|)
pfmt(3|||N|N|)
pblnk(1)
ret
ENDPRINT?:
if N2 <> (0) gosub ENDPRINT
if S1PRNT = ("A") do
{
if CONTROL = ("N") goto CONTROL3
trap(I|I)
gosub RESTDEL
close(PATIENT)
close(RP)
goto MENU
}
CONTROL3:
trap(I|I)
close(PATIENT)
close(RP)
mount(RP|S)
goto MENU
MOUNTRP:
mount(AUTORP|R|P)
pchr(P|10)
pchr(P|11)
pchr(P|4)
pchr(P|1)
pset(132|42|42)
ret
TRAPS:
trap(I|D)
trap(Q|G|EXIT)
trap(3|I)
trap(7|S|HOME)
trap(9|S|PGUP)
trap(S|I)
trap(D|I)
trap(R|I)
trap(F|I)
trap(N|I)
trap(M|I)
trap(J|I)
trap(U|D)
trap(W|D)
trap(1|I)
trap(L|S|RECLOCK)
ret
CLEARALL:
clr(PATIENT|B)
clr(RP|B)
ret
;MOUNT REPORT RPLABELS|
RPLABSCR:
pchr(P|10)
pchr(P|12)
pchr(P|4)
mount(RPLABELS|R|P)
pchr(P|1)
pset(130|8|8)
ret
EJECTION:
ptof
ret
;LABEL PRINTING ROUTINES FOR DEMANDS AND DISPENSING|
LOOP_ARY:
CNTR = (CNTR+1)
gosub SEXIST
gosub NEWX
ARRAY1[CNTR] = (Z30)
just(ARRAY1[CNTR]|C)
ARRAY2[CNTR] = (QUANTITY)
just(ARRAY2[CNTR]|C)
ARRAY3[CNTR] = (DIRECTIONS)
just(ARRAY3[CNTR]|C)
ARRAY4[CNTR] = (MEDICATION)
just(ARRAY4[CNTR]|C)
ARRAY5[CNTR] = (DOSE)
ARRAY6[CNTR] = (RP.DISP.QTY)
ARRAY7[CNTR] = (RP.NEXT.DUE)
ARRAY8[CNTR] = (RPWARNING)
just(ARRAY8[CNTR]|C)
ARRAY9[CNTR] = (LABELS)
if CNTR = (3) gosub PRINTPX
ret
CL_ARRAY:
clrmem(ARRAY1|3)
clrmem(ARRAY2|3)
clrmem(ARRAY3|3)
clrmem(ARRAY4|3)
clrmem(ARRAY5|3)
clrmem(ARRAY6|3)
clrmem(ARRAY7|3)
clrmem(ARRAY8|3)
clrmem(ARRAY9|3)
ret
PRINTPX:
trap(I|S|PRINTSTOP)
pfmt(1|||N|N|)
pfmt(4|||N|N|)
pfmt(5|||N|N|)
pfmt(7|||N|N|)
pfmt(8|||N|N|)
pfmt(10|||N|N|)
pfmt(11|||N|N|)
pblnk(1)
CNTR = (0)
gosub CL_ARRAY
if FLAGGER = ("X") do
{
pops
pops
goto RUNRP
}
trap(I|I)
ret
NEWX:
NY = (" ")
PATIENT1A = (PATIENT.NAME)
trim(PATIENT1A|T)
PUNC1 =loc(","|PATIENT1A|1||27)
N.2.0.P =siz(A|PATIENT.NAME)
P.2.0.1 = (PUNC1-1)
PATIENT2 =mid(PATIENT.NAME|1|P.2.0.1|)
P.2.0.2 = (PUNC1+2)
P.2.0.3 = (N.2.0.P-P.2.0.2+1)
PATIENT1 =mid(PATIENT1A|P.2.0.2|P.2.0.3|)
trim(PATIENT1|T)
trim(PATIENT2|T)
Z30 = (TIT+PATIENT1+NY+PATIENT2)
ret
;DEMAND LABEL PRINTING USING RPLABELS|
XPRINT:
MENU:
TRUN:
TM[1] = (" 1 - AGE-SEX REGIST 01011")
TM[2] = (" 2 - PRINT AUTOS 01022")
TM[3] = (" 3 - LABEL PRINT 01033")
TM[4] = (" 4 - DISP. LABELS 01044")
TM[5] = (" 5 - EXIT 01055")
TM[6] = (" 6 - RP REPORT 01066")
TM[7] = (" 7 - DEMAND PRINT 01077")
menu(30|20|8|23|0|TM|CHOICE|7|22|TRUN||"-----RP PRINTING-------"|n)
frg
on(CHOICE|G|PATIENT;NEWPRINTX;LABELS;RPL;EXIT2;RPRPT|DEMS)
;LABEL PRINTING FROM SCREEN USING LABLER|
NEWPRINTX:
goto TDM
DEMS:
run("PRINTDEM")
LABELS:
open(PATIENT||0|EXIT)
open(RP||0|EXIT)
gosub TRAPS
gosub CLEARALL
gosub FIELDCLR
clrlne(1|25)
mount(LABLSCR|S)
STARTL:
enter(MEM.PAT.NAME|||STARTL|Y|Y|N|||N)
S101R:
enter(S10||||Y|Y|N|||N)
if S10 = (" ") goto S101R
enter(A30||||Y|Y|N|||N)
lnum(PATCTR)
S1 =mid(A30|1|1|)
if S1 = ("@") do
{
AB = (A30)
gosub LETRPABV
AB = ("")
A30 = (RPABBREV.NAME)
gosub CLRABV
}
QTYL:
enter(B30||||Y|Y|N|||N)
enter(C30||||Y|Y|N|||N)
lnum(PATCTR)
S1 =mid(C30|1|1|)
if S1 = ("@") do
{
AB = (C30)
gosub LETRPABV
AB = ("")
C30 = (RPABBREV.NAME)
B30 = (WARNING)
gosub CLRABV
}
ABL:
enter(A8||||Y|Y|N|||N)
enter(N3||||N|N|N|||N)
enter(A5||||Y|Y|N|||N)
enter(YES.NO|"YN"|||Y|Y|N|||N)
if YES.NO = ("N") goto NONOL
PRINTLABL:
trap(I|S|PRINTSTOP)
pchr(P|10)
pchr(P|12)
pchr(P|4)
mount(LABLER|R|P)
pchr(P|1)
pset(79|13|9)
PCTR = (0)
just(MEM.PAT.NAME|C)
just(S10|C)
just(A30|C)
just(B30|C)
just(C30|C)
for(PCTR|1|9|1)
{
pfmt(PCTR|||N|N|P)
}
trap(I|I)
NONOL:
mount(LABLSCR|S)
YES.NO = (" ")
S10 = (" ")
A30 = (" ")
B30 = (" ")
C30 = (" ")
A8 = (" ")
N3 = (" ")
A5 = (" ")
goto STARTL
LABL:
mount(LABLSCR|S)
RETL:
ret
CLEARL:
clr(PATIENT|B)
goto STARTL
;PRINT DISPENSING LABELS|
RPL:
open(PATIENT||0|EXIT)
open(RP||0|EXIT)
gosub CLEARALL
gosub FIELDCLR
gosub TRAPS
trap(Q|G|RUNRP)
clrlne(1|25)
saves(1)
trap(Q|I)
rev
window(15|16|4|60)
pmsg("DISPENSING LABEL PRINTING-LINE UP LABLES PLEASE"|1|1|N|N|S|)
pmsg(@R;"ENTER THE DATE TO WHICH YOU NEED LABELS:"|1|2|N|N|S|DATEX)
pmsg(@R;"TO CONTINUE PRESS<Y> TO EXIT ETC PRESS<N>"|1|3|N|N|S|YES.NO)
frg
redsp(1)
trap(Q|G|EXIT)
if YES.NO <> ("Y") goto RUNRP
X1 = ("Y")
gosub RPLABSCR
DISPENSING = ("Y")
find(M|DISPENSING|RPL)
TESTR:
RP.REF = (RECORD.NUMBER)
find(M|RP.REF|PATIENTL)
TESTRPL:
if AUTO.ON.DEMAND = ("D") goto NEXTRPL
if RP.NEXT.DUE > (DATEX) goto NEXTRPL
gosub LOOP_ARY
NEXTRPL:
RP.REF = (RECORD.NUMBER)
find(N|RP|PATIENTL)
if RP.REF = (RECORD.NUMBER) goto TESTRPL
PATIENTL:
DISPENSING = ("Y")
find(N|PATIENT|RUNRP_X|)
if DISPENSING <> ("Y") goto RUNRP
goto TESTR
RUNRP_X:
CNTR = (2)
FLAGGER = ("X")
gosub LOOP_ARY
RPRPT:
open(PATIENT||0|EXIT)
open(RP||0|EXIT)
gosub TRAPS
;PRINT REPEAT PRESCIBING REPORT|
clrlne(1|25)
gosub CLEARALL
gosub FIELDCLR
trap(Q|G|RUNRP)
saves(1)
trap(Q|I)
rev
window(20|12|2|40)
pmsg("DO YOU WANT AN RP REPORT <Y> or <N>:"|1|1|N|N|S|YES.NO)
frg
redsp(1)
trap(Q|G|RUNRP)
if YES.NO <> ("Y") goto RUNRP
STARTER:
trap(I|S|PRINTSTOP)
gosub MOUNTRPRPT
find(B|PATIENT.NAME|RUNRP)
if DISPENSING = ("X") goto NEXTRY
N5 = (0)
gosub SHEADINGER
NEXTPER:
RP.REF = (RECORD.NUMBER)
find(M|RP.REF|NEXTRY)
N5 = (N5+1)
pblnk(1)
pfmt(5|||N|N|)
PRINTER:
pfmt(6|||N|N|)
NEXTREC:
find(N|RP|LINER)
if RP.REF <> (RECORD.NUMBER) goto NEXTRY
goto PRINTER
NEXTRY:
find(N|PATIENT|N502R)
if DISPENSING = ("X") goto NEXTRY
goto NEXTPER
SHEADINGER:
pfmt(1|||N|N|)
pfmt(2|||N|N|)
pblnk(1)
pfmt(3|||N|N|)
pfmt(4|||N|N|)
pblnk(1)
ret
LINER:
pblnk(1)
goto NEXTRY
N502R:
pfmt(7|||N|N|)
goto RUNRP
MOUNTRPRPT:
mount(RPRPT|R|A)
pchr(P|10)
pchr(P|11)
pchr(P|4)
pchr(P|1)
pset(132|66|64)
ret
RP.EXIT:
gosub TRAPS
close(PATIENT)
close(RP)
goto EXIT
PRINTSTOP:
pon(S)
clrlne(1|25)
pmsg("CONTINUE(Y) OR EXIT (N) (Y/N):"|1|12|N|N|S|)
enter(YES.NO|"YN"|||Y|Y|N|35|12|N)
if YES.NO <> ("Y") then run("recmenu")
pon(P)
ret
HOME:
pchr(P|10)
pchr(P|12)
for(PCTR|1|13|1)
{
pchr(P|7)
}
ret
PGUP:
pchr(P|10)
pchr(P|11)
for(PCTR|1|42|1)
{
pchr(P|7)
}
ret
FIELDCLR:
S1 = ("")
MINUS = (0)
D1 = ("")
S1PRNT = ("")
S10 = ("")
N2 = (0)
N3 = (0)
N5 = (0)
N5.2 = (0)
A5 = ("")
A8 = ("")
A30 = ("")
B30 = ("")
C30 = ("")
AGE = (0)
DATERP = (0)
TDND = (0)
DATEX = (0)
REC.NUM = (0)
MEM.PAT.NAME = ("")
DAY = ("")
DOCTORRP = ("")
P2 = (0)
PUNC2A = (0)
B8 = ("")
YES.NO = ("")
PCTR = (0)
AB = ("")
LETTER = ("")
NY = ("")
MEDCTR = (0)
PATCTR = (0)
P2X = (0)
CODEX1 = (0)
CODEX2 = (0)
CODEX3 = (0)
ret
LETABV:
ABBREVIATION = (AB)
find(M|ABBREVIATION|GET.ABBREV)
goto RET
GET.ABBREV:
gosub LETTRAP
saves(1)
trap(Q|I)
window(10|14|5|60)
pmsg("ABBREVIATION :";ABBREVIATION|1|2|N|N|S|)
pmsg("ENTER ABBREV.NAME:"|1|4|N|N|S|ABBREV.NAME)
if ABBREV.NAME = ("") goto NOABV
save(ABBREV|N|N|GET.ABBREV)
NOABV:
redsp(1)
trap(Q|G|EXIT)
gosub TRAPS
RET:
ret
LETRPABV:
RPABBREVIATION = (AB)
find(M|RPABBREVIATION|GET.RPABBR)
goto RETT
GET.RPABBR:
gosub LETTRAP
saves(2)
trap(Q|I)
window(10|16|7|60)
pmsg("ABBREVIATION:";RPABBREVIATION|1|2|N|N|S|)
pmsg("ENTER RPABBREV.NAME:"|1|4|N|N|S|RPABBREV.NAME)
if RPABBREV.NAME = ("") goto NORPABV
pmsg("ENTER WARNING:"|1|6|N|N|S|WARNING)
save(RPABBREV|N|N|GET.RPABBR)
NORPABV:
redsp(2)
trap(Q|G|EXIT)
gosub TRAPS
RETT:
ret
CLRABV:
clr(ABBREV|B)
clr(RPABBREV|B)
ret
LETCLR:
clr(PATIENT|B)
clr(RP|B)
ret
PATIENT:
run("PATIENT")
LETTRAP:
trap(U|I)
trap(W|I)
ret
RUNRP:
run("PRINTALL")
TRACE:
break
ret
EXIT:
trap(O|S|FILER)
close(PATIENT)
close(RP)
goto MENU
FILER:
lferrn(FILE_ERROR)
pmsg(FILE_ERROR|1|1|Y|N|S|)
ret
EXIT2:
run("recmenu")
PATLOCK:
pmsg("FILE PATIENT IN USE BY ANOTHER STATION CAN'T LOCK"|20|24|Y|N|S|)
clrlne(1|24)
run("recmenu")
RPLOCK:
pmsg("FILE RP IN USE BY ANOTHER STATION - CAN'T LOCK"|20|24|Y|N|S|)
clrlne(1|24)
run("recmenu")
RECLOCK:
saves(1)
pon(S)
pmsg("THIS RECORD IS LOCKED BY ANOTHER STATION - PRESS RET"|20|24|Y|N|S|)
clrlne(1|24)
redsp(1)
pon(P)
ret
NEWPRINTY:
close(PATIENT)
close(RP)
goto MENU
RESTDEL:
mount(RP|S)
RESTDELX:
RESTRICT.NO = (-1)
find(G|RESTRICT.NO|RESTRET)
if RESTRICT.NO > (-1) goto RESTRET
if ISS.RESTRICT = ("N") goto RESTNEXT
del(RP|Y|RESTNEXT)
goto RESTDELX
RESTNEXT:
find(N|RP|RESTPREV)
if RESTRICT.NO > (-1) goto RESTPREV
if ISS.RESTRICT = ("N") goto RESTNEXT
del(RP|Y|RESTNEXT)
goto RESTDELX
RESTPREV:
find(P|RP|RESTRET)
if RESTRICT.NO > (-1) goto RESTRET
if ISS.RESTRICT = ("N") goto RESTPREV
del(RP|Y|RESTPREV)
goto RESTPREV
RESTRET:
ret
REC_CHECK:
pchr(P|18)
FLAG = ("")
COD.REF = (MEM_RECNUM)
find(M|COD.REF|REC_RET|)
for(REC_CTR|4|9|1)
{
if FLAG = ("X") goto SAVE_RECAL
if COD.D[REC_CTR] > (0) do
{
if COD.D[REC_CTR] < (DATEX) do
{
if REC_CTR = (4) do
{
pfmt(37|||N|N|)
pfmt(38|||N|N|)
pfmt(39|||N|N|)
COD.D[7] = (0)
FLAG = ("X")
}
if REC_CTR = (9) do
{
pfmt(34|||N|N|)
pfmt(35|||N|N|)
pfmt(36|||N|N|)
COD.D[7] = (0)
FLAG = ("X")
}
if REC_CTR = (8) do
{
pfmt(40|||N|N|)
pfmt(41|||N|N|)
pfmt(42|||N|N|)
COD.D[7] = (0)
FLAG = ("X")
}
if REC_CTR = (7) do
{
if COD.D[7] <> (0) do
{
pfmt(25|||N|N|)
pblnk(2)
COD.D[REC_CTR] = (COD.D[REC_CTR]+365)
FLAG = ("X")
}
}
}
}
}
SAVE_RECAL:
save(RECALLS|N|Y)
REC_RET:
pchr(P|19)
MEM_RECNUM = (0)
if FLAG = ("X") goto REC_NOSUB
goto REC_LINES
NEWPRINT:
goto MENU
\STRP
REPEAT PRESCRIBING PRINTING - AUTO
┌─────────────────────────────────────────────────────────────────────────────┐
│ PATIENT NAME:& < │
│ Address:& & D.O.B.:& │
└─────────┬───────────────────────────────────────┬─────────────────┬─────────┘
│ Auto/on demand? A/D :& │numb.issued:& │
│ Restrictions? Y/N:&for:& issues.│numb.to go :& │
│ Starting.date:& └─────────────────┤
│ Days between issue:& │
│ Last.issue:& │
│ RP.Next.Due:& │
│ Medication @:& < │
│ Warning:& │
│ Strength:& │
│ Dose:& │
│ Directions @:& ░ │
│ Qtity / Type:& /& │
└─────────────────────────────────────────────────────────┘
F1 - HELP @ - ABBREVIATION F3 - CLEAR RP CLEAR PATIENT
HOME - EJECT LABEL * PgUp - EJECT RP * END - PRINT DEMANDS
\
PATIENT.NAME
ADDRESS1
AREA
DATE.OF.BIRTH
AUTO.ON.DEMAND
ISSUE.NO
ISS.RESTRICT
HOW.MANY.ISSUES
RESTRICT.NO
RP.FIRST
RP.DAYS.SUPPLY
ISSUE.1
RP.NEXT.DUE
MEDICATION
RPWARNING
DOSE
QUANTITY
DIRECTIONS
RP.DISP.QTY
RP.WHAT.DISP
\
\R AUTORP
& & : &
=========================
ALWAYS BRING YOUR BLUE/PINK RP CARD TO THE DOCTOR.
&
&
& & & &
& & & &
(& )&
&
&
&
& NEXT SCRIP READY TO COLLECT ON: &
& THIS IS "ON DEMAND" ONLY.
&
&
&
& &
& &
PLEASE HAVE YOUR CARD CHECKED AT RECEPTION
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX & &
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX &
* * * * * & ITEM(S) * * * * * *
NOW BEING DONE IN SEPARATE REGULAR CLINICS. YOUR CHECK IS
ARRANGED. RING 515666 TODAY TO CONFIRM THE TIME AND DATE.
BLOOD PRESSURE,HEART,DIABETES AND ASTHMA CHECK-UPS ARE
*** IMPORTANT *** BLOOD PRESSURE CHECKS ***
These checks will now be done in separate clinics.When
your check is due ring 515666 for your appointment.
*** IMPORTANT *** Diabetic Clinics ***
Your check at our Diabetic Clinic is now due.Please
ring 515666 for your appointment time at the clinic.
*** IMPORTANT *** Asthma Clinic ***
You are due for a check on your breathing. Please
ring 515666 for your appointment time at the clinic.
&
\
TIT
PATIENT.NAME
PATIENT.NAME
ADDRESS1
AREA
A30
DOSE
A30
RESTRICT1
S10
DIRECTIONS
RESTRICT2
DATERP
RP.DISP.QTY
RP.WHAT.DISP
TDND
TD
TDND
FPC
DATERP
FPC
DOCTORRP
DOCTORRP
PRADDRESS
P2X
TOWN
P2X
TOWN
A30
RESTRICT1
RESTRICT2
P2X
TD
\
\R RPLABELS
& & &
& & &
& & &
------------------------------ ------------------------------ ------------------------------
& & &
& (& ) & & (& ) & & (& ) &
& & &
& & &
Keep out of reach of children! Keep out of reach of children! Keep out of reach of children!
( ) ( )
CODE 1 CODE 2 CODE 3
-----------
\
ARRAY1[1]
ARRAY1[2]
ARRAY1[3]
ARRAY2[1]
ARRAY2[2]
ARRAY2[3]
ARRAY3[1]
ARRAY3[2]
ARRAY3[3]
ARRAY4[1]
ARRAY4[2]
ARRAY4[3]
ARRAY5[1]
ARRAY6[1]
ARRAY7[1]
ARRAY5[2]
ARRAY6[2]
ARRAY7[2]
ARRAY5[3]
ARRAY6[3]
ARRAY7[3]
ARRAY8[1]
ARRAY8[2]
ARRAY8[3]
ARRAY9[1]
ARRAY9[2]
ARRAY9[3]
\
\R LABLER
&
&
&
&
------------------------------
&
& & & &
&
Keep out of reach of children!
\
MEM.PAT.NAME
S10
A30
B30
C30
A8
N3
A5
TD
LABELS
\
\R RPRPT
REPEAT PRESCRIBING REPORT - &
-----------------------------------
PATIENT STRENGTH FIRST LAST NEXT A/D TABS DAYS RP.REF NO.ISSUED H/M R/NO
---------------------------------------------------------------------------------------------------------------------------------
& DISP?:&
& & & & & & & & & & [& ][& ]
NUMBER:&
\
TD
PATIENT.NAME
DISPENSING
MEDICATION
DOSE
RP.FIRST
ISSUE.1
RP.NEXT.DUE
AUTO.ON.DEMAND
RP.DISP.QTY
RP.DAYS.SUPPLY
RP.REF
ISSUE.NO
HOW.MANY.ISSUES
RESTRICT.NO
N5
\
\STLABLSCR
PRINT OWN LABELS
╔════════════════════════════════════════════════════╗
║ 1.PATIENTS NAME: :& ░░░░░║
║ 2.DOSE: :& ░░░░░░░░░░░░░░░░░░░░░░║
║ 3.INSTRUCTIONS @:& ░░║
║ 4.WARNING: :& ░░║
║ 5.DRUG @:& ░░║
║ 6.STRENGTH :& ░░░░░░░░░░░░░░░░░░░░░░░░║
║ 7.NUMBER DISPENSED:& /& ░░░░░░░░░░░░░░░░░░░░░░░║
║ 8.TODAYS DATE :& ░░░░░░░░░░░░░░░░░░░░░░░░║
║ 9.PRINT IT? Y/N :&░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
╚════════════════════════════════════════════════════╝
F1 - HELP @ - ABBREVIATION ESC - EXIT TO MENU
\
MEM.PAT.NAME
S10
A30
B30
C30
A8
N3
A5
TD
YES.NO
\